package com.cxy.mapper;

import com.cxy.dto.InformationDTO;
import com.cxy.dto.InformationImportDTO;
import com.cxy.dto.InformationScoreDTO;
import com.cxy.entity.Information;
import com.cxy.vo.InformationVO;
import com.cxy.vo.MonthVO;
import com.cxy.vo.QuarterVO;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface InformationMapper{
    /**
     * 查询评议信息
     * @param informationDTO
     * @return
     */
    Page<InformationVO> page(InformationDTO informationDTO);

    /**
     * 当发布一个新的任务时，需要新增所有用户并且需要把task_id设置当前新任务的id
     */
    void insert(Information information);

    /**
     * 根据id查询详细评议信息
     */
    @Select("select a.*,t.date_number from assessinformation a,task t where a.id=#{id} and task_id=t.id ")
    Information getById(Long id);

    /**
     *
     * @param informationScoreDTO
     */
    void update(InformationScoreDTO informationScoreDTO);

    /**
     * 导入数据成绩修改
     */
    void importUpdate(InformationImportDTO informationImportDTO);

    /**
     * 获得information表中的所有信息
     */
    @Select("select * from assessinformation")
    List<Information>selectAll();

    /**
     * 返回月榜（月榜默认显示最新生成的期数的榜单。）
     * @return
     */
    List<MonthVO> month(Long taskId);

    /**
     * 返回季度榜(首页的季度榜”默认显示的是距离当前上一个季度的榜单)
     * @param ids
     * @return
     */
    List<QuarterVO> getSumScore(List<Long>ids);
}
